#pragma once

#include "MapOperation.h"
#include <geometry_msgs/PoseWithCovarianceStamped.h>
#include <tf/transform_listener.h>
#include "std_msgs/String.h"
#include <vector>
#include <string>
#include <boost/filesystem.hpp>
#include <algorithm>
 
 namespace kybot_map {

 class Location3dOperation : public MapOperation
 {
public:
    Location3dOperation();
    //重定位
    virtual bool RelocatorPos(geometry_msgs::Pose2D pose) override;  
   //开始定位
   virtual bool StartLocalization(const std::string& param) override;
   //停止定位
   virtual bool SwitchMap(const std::string& map_name);
   virtual bool SearchMap(std::vector<std::string>& mapNameList_,const std::string& mapFolderPath_);
   virtual bool StopLocalization(const std::string& param) override; 
 private:
    ros::Publisher initial3DPosePuber_,mapPuber_;
    ros::NodeHandle nh_;
   };
}